Automation control systems are well-known. Such systems include building automation systems for controlling environmental systems, elevator banks, and the like. Other automation control systems include industrial control, food processing, and transportation systems. These systems receive data from sensors that are evaluated to determine control actions to take in order to bring about some condition or perform some operation. For example, an environmental control system uses sensors to detect environmental conditions and system parameters throughout a building or other space that is environmentally regulated to determine control actions for maintaining or bringing the regulated space to some defined condition. Typically, the sensors are temperature sensors, infrared body detectors, position indicators, water flow meters, air flow meters, water pressure meters, air pressure meters, and the like. Position indicators are devices that generate a signal that corresponds to the position of a switch, valve, or vent opening so the system controller may determine whether particular lights, fans, vents, or blower motors are operating or open. The data that are generated by the sensors are provided to one or more controllers in the control system. The controllers typically compute control variables from the data, compare the computed or raw data to set points and then perform control actions to bring the sensed parameters into compliance with the conditions corresponding to the set points. For example, a control variable that indicates a person's entry into a room may be used to initiate control actions to achieve lighting, ventilation, and thermal comfort conditions specified for an occupied space. Such control actions may include the activation of blower motors to bring conditioned air into the room through vents that are also opened in response to control signals generated by the controller. In this manner, the controller may regulate the environmental conditions in a space.
Distributed processing may be used in an environmental control system to coordinate control of the system with the various HVAC functions in the system. For example, an air-handling unit (AHU) in an HVAC system distributes conditioned air to several variable air volume (VAV) terminals in a building. Thus, VAV controllers exchange data with the AHU controller so the AHU appropriately provides conditioned air to the VAVs and the AHU controller may synchronize the operation of these local space controllers.
One type of limitation typically encountered in distributed processing systems used for distributed control of an environmental space is the number of outputs from local space controllers that may be coupled to a synchronizing controller. For example, one known controller for environmental control systems is the NEURON CHIP controller available from Echelon of Palo Alto, Calif. The NEURON CHIP controller is used in a variety of controllers for environmental control systems that use distributed processing. When a NEURON CHIP controller is used to run an application program, the number of supported network variables is limited to sixty-two. Network variables are extremely useful because they may be used to make local data at one controller node available to external processes at another controller node. Thus, they may be used to provide data from one controller to another controller. NEURON CHIP controllers may also be used in other automation control systems such as building automation systems, industrial control systems, and transportation control systems.
In one type of distributed control system, network variables have been used so multiple local space controllers, such as VAV controllers, may share a single connection to a synchronizing controller, such as an AHU controller. In such a known arrangement, the local space controllers are called source controllers because they provide data to a sink controller, which may be an AHU controller. To provide data to a sink controller, a plurality of source controller network variable outputs may be coupled to one sink controller input through a single network variable input. To obtain data from the various source controller outputs coupled to the sink controller input, the sink controller may poll for data. Polling requires the sink controller to identify the source controller being polled in the polling message so the data received in response to the polling message may be associated with the source controller that generated the data. However, polling requires processing overhead for the sink controller that initiates the request for data and every source controller that determines whether it should respond with data to the polling message. Additionally, a polling technique does not permit the source controllers to provide data as it becomes available but rather a source controller must wait for a polling message before apprising the sink controller of conditions at the source controller.
In another distributed processing system, a plurality of source controller network variable outputs are associated with one network variable input of a sink controller without requiring the sink controller to poll the source controllers. In this arrangement, the sink controller may obtain data from a source controller as it is sent to update the shared network variable input along with the address of the source controller that provided the update data. In previously known systems, the sink controller read the data at its network variable input and invoked a task to process the data. When the next update on the shared network variable input occurred, the newly received data would overwrite the previously received data and the same task would execute to process the newly received data. Thus, the task at the sink controller for the shared network variable input only processed the data received at the shared network variable input of a sink controller without reference to the source controller that provided the data.
One limitation of this non-polled configuration of multiple source controllers updating a single network variable at a sink controller is the ability to persistently distinguish the data from the various data sources after it has been processed. Consequently, this configuration of multiple source controllers updating a single network variable at a sink controller is typically used only for tasks that do not require reference to data from other controllers that update the same network variable. For example, some control actions of a sink controller require comparison of an average, minimum, or maximum value to some threshold before a determination may be made to perform a control action. Because the network variable input coupled to the plurality of source controller network variable outputs only contains the most recent update data, a value for a control variable that requires data from other source controllers that also update the shared network variable input cannot be computed.
What is needed is a way of computing values for control variables that represent the values of a whole set of source controllers, all of which update one, shared network variable input at a sink controller.